
// 配置假数据的axios的封装

import axios from "axios";
import NProgress from "nprogress";  // 进度条
import "nprogress/nprogress.css";
// 创建axios实例
const requestMock = axios.create({
	baseURL:'',
	timeout:'4000'
})
// 请求拦截器
requestMock.interceptors.request.use(
	(config)=>{
		// 开启进度条
		NProgress.start()
		return config
	},
	(error)=>{
		return Promise.reject(error)
	}
)

// 响应拦截器
requestMock.interceptors.response.use(
	(response)=>{
		//关闭进度条
		NProgress.done();
		//对于我们的成功来说,不但响应状态码是200,并且请求回来的数据中的后端给的code码也是200才可以
		//举个例子:登录的时候返回密码错误,但是响应状态码是200,但是数据中code是207,这就不是我们想要的
		if (response.data.code === 200) {
			//当拿到我们想要的数据后,直接返回想要的数据(response.data只是后台返回的整体数据,我们想要的数据在response.data.data)
			return response.data.data
		}
		return Promise.reject({message:response.data.message})
	},
	(error)=>{
		//关闭进度条
		NProgress.done();
		return Promise.reject(error)
	}
)

export default requestMock